<?php

/**
 * 过滤输入的emoji表情,用于统一输入过滤
 * @modify trainyao 2015-10-30 创建
 */
function fliteEmoji($value) {
    $strEncode = '';
    $length = mb_strlen($value, 'utf-8');
            
    for ($i=0; $i < $length; $i++) {
            $_tmpStr = mb_substr($value , $i, 1, 'utf-8');
            if(strlen($_tmpStr) >= 4){
                    $strEncode .= '[EMOJI:' . str_replace('"', '', json_encode($_tmpStr)) . ']';
            }else{
                    $strEncode .= $_tmpStr;
            }
    }
    return $strEncode;
}

/**
 * 上面方法的逆方法,将emoji转换回符号
 * @modify trainyao 2015-10-30 创建
 */
function returnEmoji($value) {
    $strDecode = preg_replace_callback("/\[EMOJI:(.*?)\]/", function($matches){
        return json_decode('"' . $matches[1] . '"');
    }, $value);

    return $strDecode;
}

/**
 * 判断是否存在子字符串
 * @param  string $str    待检查字符串
 * @param  string $substr 子字符串
 * @return boolean
 */
function containSubStr($str, $substr){
    return strpos($str, $substr) ? true : false;
}

/**
 * 字符串顺序格式化
 * @param type $string   6,5,4,3,2,1,0  => 0,1,2,3,4,5,6
 */
function getSortString($string) {
    if (!$string) {
        return $string;
    }
    $array = explode(',', $string);
    asort($array);
    return implode(',', $array);
}


/**
 * 返回汉字拼音的首字母
 * @param type $str 汉字串
 * @return string
 */
function getFirstChar($str) {
    $firstchar_ord = ord(strtoupper($str[0]));
    if (($firstchar_ord >= 65 && $firstchar_ord <= 91) || ($firstchar_ord >= 48 && $firstchar_ord
            <= 57)) {
        return strtoupper($str[0]);
    }

    $s = iconv("UTF-8", "gb2312", $str);
    $asc = ord($s[0]) * 256 + ord($s[1]) - 65536;
    if ($asc >= -20319 && $asc <= -20284) {
        return "A";
    }

    if ($asc >= -20283 && $asc <= -19776) {
        return "B";
    }

    if ($asc >= -19775 && $asc <= -19219) {
        return "C";
    }

    if ($asc >= -19218 && $asc <= -18711) {
        return "D";
    }

    if ($asc >= -18710 && $asc <= -18527) {
        return "E";
    }

    if ($asc >= -18526 && $asc <= -18240) {
        return "F";
    }

    if ($asc >= -18239 && $asc <= -17923) {
        return "G";
    }

    if ($asc >= -17922 && $asc <= -17418) {
        return "H";
    }

    if ($asc >= -17417 && $asc <= -16475) {
        return "J";
    }

    if ($asc >= -16474 && $asc <= -16213) {
        return "K";
    }

    if ($asc >= -16212 && $asc <= -15641) {
        return "L";
    }

    if ($asc >= -15640 && $asc <= -15166) {
        return "M";
    }

    if ($asc >= -15165 && $asc <= -14923) {
        return "N";
    }

    if ($asc >= -14922 && $asc <= -14915) {
        return "O";
    }

    if ($asc >= -14914 && $asc <= -14631) {
        return "P";
    }

    if ($asc >= -14630 && $asc <= -14150) {
        return "Q";
    }

    if ($asc >= -14149 && $asc <= -14091) {
        return "R";
    }

    if ($asc >= -14090 && $asc <= -13319) {
        return "S";
    }

    if ($asc >= -13318 && $asc <= -12839) {
        return "T";
    }

    if ($asc >= -12838 && $asc <= -12557) {
        return "W";
    }

    if ($asc >= -12556 && $asc <= -11848) {
        return "X";
    }

    if ($asc >= -11847 && $asc <= -11056) {
        return "Y";
    }

    if ($asc >= -11055 && $asc <= -10247) {
        return "Z";
    }

    return '#';
}

/**
 * 获取短链接 自建api
 * @param  string $originalUrl 原始链接
 * @return string 出错的情况返回false，正确的情况返回短链接字符串
 */
function shortenUrl($originalUrl) {
    $data=array('flag'=>'uclbrt', 'url'=>$originalUrl);
    $request=curl_init();
    curl_setopt($request, CURLOPT_URL, 'http://qrkey.uclbrt.com/shorturl.php');
    curl_setopt($request, CURLOPT_POST, true);
    curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($request, CURLOPT_POSTFIELDS, json_encode($data));
    $strResponse=curl_exec($request);
    curl_close($request);
    $arrResponse=json_decode($strResponse, true);
    if($arrResponse['error'] != 0){
        return $originalUrl;
    }
    return $arrResponse['short_url'];
}

/**
 * 10进制转62进制
 * @param  string $content 内容
 * @return string
 */
function longto62($content) {
    $show='';
    while($content > 0){
        $s = $content % 62;
        if ($s > 35){
            $s = chr($s + 61);
        } elseif ($s > 9 && $s <= 35){
            $s = chr($s + 55);
        }
        $show .= $s;
        $content = floor($content / 62);
    }
    return $show;
}